package com.dzl.cloud.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * @author 光的代言人
 */
@FeignClient(name = "permission-service")
public interface PermissionService {
    // 绑定默认角色（普通用户）
    @PostMapping("/permission/bind-default-role")
    void bindDefaultRole(@RequestParam("userId") Long userId);

    // 查询用户角色编码
    @GetMapping("/permission/get-user-role-code")
    String getUserRoleCode(@RequestParam("userId") Long userId);

    // 升级用户为管理员
    @PostMapping("/permission/upgrade-to-admin")
    void upgradeToAdmin(@RequestParam("userId") Long userId);

    // 降级用户为普通角色
    @PostMapping("/permission/downgrade-to-user")
    void downgradeToUser(@RequestParam("userId") Long userId);
    /**
     * 根据角色码查询用户ID列表
     * @param roleCode 角色码（如"user"）
     * @return 用户ID列表
     */
    @GetMapping("/permission/select-userIds-by-Role/{roleCode}")
    List<Long> getUserIdsByRole(@PathVariable("roleCode") String roleCode);
}
